In computer operations, operands may require conversion between different formats. For example, an operand may be stored in one format but certain operations may be conducted in another format. A specific example of operand conversions regards floating point calculations. In certain computing devices, because of considerations such as size, power, and expected usage, a floating point logic unit for the execution of floating point mathematical functions is not included. If floating point operations are needed, the calculations may be done by software emulation of floating point operations.
However, conversions of operands between formats will generally slow system operations. Software emulation of floating point operations are executed relatively slowly. The device for which software emulation is applied, because it lacks floating point hardware, cannot effectively conduct mathematical operations on floating point operands while the operands are in floating point form. For this reason, a conventional software emulation of a floating point operation results in converting each operand into another format that is more easily operated upon. A standard floating point number is stored in a relatively small format, and is said to be in a “packed” format. A number in a “packed” floating point format may be converted to an “unpacked” format that can be effectively used in calculations.
In conventional operand conversions, the operand is converted from a first format to a second format for the purposes of an operation and then is converted back to the original format after the operation. In floating point emulation, operands are generally stored in packed format, are converted into unpacked format for the execution of floating point calculations, and then the result of the function is packed again after the calculation.
The process of packing and unpacking numbers for floating point operations, while allowing for more efficient mathematical operations in a computing environment in which a floating point logic unit is absent, also can take significant time and thus impose performance costs. As calculations become more complex, there may be results of operations that are packed after the operations performed, and then that are subsequently unpacked again if the results are operands for additional operations. The format conversions may create unnecessary delays because of the redundant transformations of operands between the packed and unpacked formats.